Computer applications which run for a long time (e.g., several days) often need to process a steady stream of input data. Often this input data will be read by libraries. For example, in the Fortran computer language, it is common to have Fortran Input/Output (I/O) libraries which may be accessed when reading or writing data. Since the applications need to be able to run continuously for a long time, non-recoverable input errors can be especially disruptive.
If, for example, the input stream contains typographical errors or transmission errors, the application will typically halt execution and signal an error since there is no way to tell the I/O library what to do with the input and continue from that point. This can cause a loss of valuable time as these applications are often left unattended. Additionally, even if the application is not left unattended, the error typically forces the user to restart the execution.
What is needed is a solution to allow an application to deal with erroneous input data from a library without having to restart.